<?php
/**
 * Create by PhpStorm.
 * User: imac3
 * Date: 2021/1/6
 * Time: 10:52 上午
 */

namespace app\web\controller;

use app\api\controller\v2\Auth;
use app\common\cachemodel\ZlSynastryReport;
use app\common\cachemodel\ZlSynastryReportText;
use app\common\lib\exception\ApiException;
use app\common\lib\Util;
use think\Controller;
use think\Env;
use think\Exception;
use think\Log;

/**
 * Class SynastryReport
 * @package app\web\controller
 */
class SynastryReport extends Controller
{
    protected $recodeInfo = [];
    protected $isTest = false;

    public function _initialize()
    {
        $res = Util::androidVersion('2.2.0');
        $this->assign('version', $res);
    }

    /**
     * 合盘报告首页
     * @return mixed|\think\response\Json
     * @throws ApiException
     */
    public function index()
    {
        $height = input('h/d', 0);
        $id = input('id/d', 0);
        $scroll = input('scroll/f', 0);
        // TODO 未选择具体年份时，默认选择在当前范围内的那个
        $year = input('year/d', null);

        if (!$id)
        {
            throw new ApiException('数据不存在');
        }

        $res = (new ZlSynastryReport())->getInfoById($id, ['uid', 'gid', 'relation_id', 'rid1_name', 'rid1_avatar', 'rid1_astr_info', 'rid2_name', 'rid2_avatar', 'rid2_astr_info', 'content', 'start_time', 'recode_info', 'rid1', 'rid2']);

        $seifRid = 0;
        //校验token
        try
        {
            if ($this->isTest === false)
            {
                $auth = new Auth();
                $auth->checkRequestAuth();
                $userInfo = $auth->user;
                $uid = $userInfo ? (int)$userInfo['id'] : 0;
                if (!$res || $res['uid'] != $uid)
                {
                    throw new ApiException('数据不存在');
                }
                $res['rid1_name'] = $userInfo['rid'] == $res['rid1'] ? '自己' : $res['rid1_name'];
                $res['rid2_name'] = $userInfo['rid'] == $res['rid2'] ? '自己' : $res['rid2_name'];
                $seifRid = (int)$userInfo['rid'];
            }
            $relation = config('synastryreport')[1]['relation_list'][$res['relation_id']];
            $appType = $this->request->header('app-type');
            //获取报告页面所需数据
            $data = $this->getData($res, $relation, $year, $id, $height);
            $recodeInfos = \GuzzleHttp\json_decode($res['recode_info'], true);
            // 解锁档案信息
            $unlockRecodeInfo = [ // 解锁档案信息
                'recode_is_change' => false,
                'info' => (new Util)->getFortuneDetailRecodeInfo($recodeInfos, $seifRid),
                'change_title' => '',
                'change_desc' => ''
            ];
        }
        catch (Exception $e)
        {
            $errorMsg = '合盘报告错误：' . $e->getMessage() . '[' . $e->getFile() . ':' . $e->getLine() . ']';
            Log::write($errorMsg, 'error', true);
            throw new ApiException($errorMsg);
        }

        return $this->fetch('index', [
            'appType' => $appType,
            'rname' => Util::cutSubstr($data['recode_info'][0]['name'], 4) . '和' . Util::cutSubstr($data['recode_info'][1]['name'], 4),
            'res' => $data,
            'start_month' => date('m', $res['start_time']),
            'height' => $height,
            'is_show_nav' => 1,//是否展示导航栏
            'scroll' => $scroll,
            'is_expand' => false,
            'unlock_recode_info' => $unlockRecodeInfo
        ]);
    }

    /**
     * 获取报告结果数据
     * @param array $res
     * @param array $relation
     * @param int $year 需要查看第几年的数据
     * @param $id
     * @param $height
     * @return array
     * @throws ApiException
     */
    private function getData($res, $relation, $year, $id, $height): array
    {
        $contentAll = json_decode($res['content'], true);

        // 未选择年份，查看是否进入其他区间
        if ($year === null || $year >= 10)
        {
            $year = 0;
        }
        $nowYear = date('Y', strtotime('+' . $year . 'year', $res['start_time']));
        $textKey = $nowYear % 2 === 1 ? 'text' : 'text2';

        if (empty($contentAll) || !isset($contentAll[$year]))
        {
            throw new ApiException('数据错误，请联系客服人员进行处理', 200);
        }

        $content = $contentAll[$year]['tpoics'] ?? '';

        if (!$content)
        {
            throw new ApiException('数据错误，请联系客服人员进行处理', 200);
        }

        if (in_array($relation['id'], [1, 2, 4], false))
        {
            $repeatTime = $content[1]['text']['C'][0]['date_list'] ?? [];
            $relation_down = $this->getRelationDown($content[1]['text'], $relation['id'], $repeatTime, $textKey);//获取阻碍数据
            $relation_up = $this->getRelationUp($content[0]['text'], $relation['id'], $repeatTime, $relation_down['isShowUpB'], $textKey);//获取升温数据
            if ($relation_down['isShowCav'] === false)
            {
                $content[1]['level'] = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
            }
        } else
        {
            $relation_up = [];
            $relation_down = [];
        }

        $total = count($contentAll);
        $data['year_list'] = [];
        $startTime = $res['start_time'];
        $endTime = strtotime('+11 month', $res['start_time']);
        $yearTitle = ['一', '二', '三', '四', '五', '六', '七', '八', '九', '十'];
        $domain = Env::get('host.domain');
        $yearList = [];
        for ($i = 0; $i < $total; $i++)
        {
            $yearList[] = [
                'title' => '未来第' . $yearTitle[$i] . '年',
                'time' => date('Y.m', strtotime('+' . $i . 'year', $startTime)) . '-' . date('Y.m', strtotime('+' . $i . 'year', $endTime)),
                'selected' => $year === $i,
                'link' => $domain . '/web/synastry_report/index?id=' . $id . '&year=' . $i . '&zhunle_not_show_nav=1&zhunle_nav_text_color=1&need_auth=1&h=' . $height,
            ];
        }

        $data = [
            'recode_info' => [
                0 => [
                    'avatar' => $this->checkAvatar($res['rid1_avatar']),
                    'name' => Util::cutSubstr($res['rid1_name'], 5),
                    'astro_info' => $res['rid1_astr_info']
                ],
                1 => [
                    'avatar' => $this->checkAvatar($res['rid2_avatar']),
                    'name' => Util::cutSubstr($res['rid2_name'], 5),
                    'astro_info' => $res['rid2_astr_info']
                ],
            ],
            'relation' => $relation['name'],
            'top_title' => $this->getTopTitle($relation['id']),
            'top_pic' => "https://oss.goddessxzns.com/web/static/synastry_report/top-{$relation['id']}.png?v=1",
            'relation_up' => $relation_up,
            'level1' => json_encode($content[0]['level'], true),
            'level1_sum' => array_sum($content[0]['level']),
            'relation_down' => $relation_down,
            'level2' => json_encode($content[1]['level'], true),
            'level2_sum' => array_sum($content[1]['level']),
            'text' => $this->getText($content, $relation['id'], $textKey),//获取主题相关词条
            'goddess_Message' => $this->getGoddessMsg($relation['id']),
            'menu' => $this->getMenu($relation['id']),
            'year_list' => $yearList
        ];
        return $data;
    }

    /**
     * 头像地址处理
     * @param $avatar
     * @return string
     */
    private function checkAvatar($avatar)
    {
        $oss = Env::get('host.photo');
        if ($avatar)
        {
            $domain = strstr($avatar, 'http');
            if ($domain === false)
            {
                $avatar = $oss . $avatar;
            }
        } else
        {
            $avatar = '/static/synastry_report/images/avatar.png';
        }
        return $avatar;
    }

    /**
     * 获取头部文案
     * @param $relation_id
     * @return string
     */
    private function getTopTitle($relation_id)
    {
        $data = [
            1 => '茫茫人海中，能遇到一个让自己心动的人，已经是一件不容易的事情，但每一个人都是独立的个体，在真正建立关系之前，我们会经历一段暗恋的状态，这段过程或多或少会让人觉得有些折磨。<br><br>本报告将以你们双方的星图数据为基础，通过以下6个维度，详细剖析你们双方在未来一年的发展情况，希望你可以把握良机，早日脱单。',
            2 => '亿万分之一的机会，你们恋爱了，从此你的生活中不仅有阳光和空气，还有 TA 在你身边的相随陪伴。但这段恋情在接下来会经历怎样的发展呢？会爱得甜甜蜜蜜，还是相伴平淡无奇？甚至有没有可能是匆匆过客？<br><br>本报告将以你们双方的星图数据为基础，通过以下6个维度，详细剖析你们双方未来一年的恋爱发展情况，让你更好地了解并把握良机，珍惜与对方的缘份。',
            3 => '常言道： 缘在天定，份靠人为。缘份的建立总是轰轰烈烈，而缘份的结束又总是那么令人惋惜。在缘份结束的时候，或许你会心有不甘，我们是否还需要努力？或者还需要做什么样的努力去挽回这段感情呢？<br><br>本报告将以你们双方的星图数据为基础，通过以下6个维度，详细剖析你们双方在未来一年的关系发展情况，以便你更好地把握良机，创造与对方的缘份。',
            4 => '前世五百次的回眸换来一世的相遇，于亿万分之一的机会中你们相爱，最终走进婚姻关系，但这段婚姻在接下来会经历怎样的发展呢？会相濡以沫甜甜蜜蜜？还是鸡飞蛋打一地鸡毛，到最后归于平淡。<br><br>本报告将以你们双方的星图数据为基础，通过以下6个维度，详细剖析你们双方在未来一年的婚姻发展情况，以便让你更好地把握良机，为你们的婚姻生活添砖加瓦。'
        ];
        return $data[$relation_id] ?? '';
    }

    /**
     * 获取目录
     * @param $relation_id
     * @return string[]|null
     */
    private function getMenu($relation_id)
    {
        $menu = [
            1 => [
                'm-1' => '1/关系升温的月份',
                'm-2' => '2/关系受阻的月份',
                'd-1' => '3/可能会遇到的阻碍',
                'd-2' => '4/对方遇新桃花机会',
                'd-3' => '5/未来一年关系概述',
                'd-4' => '6/旺桃花人缘的建议',
            ],
            2 => [
                'm-1' => '1/感情升温的月份',
                'm-2' => '2/感情受阻的月份',
                'd-1' => '3/感情中潜在的挑战',
                'd-2' => '4/移情别恋的可能性',
                'd-3' => '5/步入婚姻机会',
                'd-4' => '6/关系发展建议',
            ],
            3 => [
                'd-1' => '1/近期双方状态',
                'd-2' => '2/近期联系的可能性',
                'd-3' => '3/对方是否还想你',
                'd-4' => '4/当前关系阻碍',
                'd-5' => '5/对方桃花人缘发展',
                'd-6' => '6/双方关系修补建议',
            ],
            4 => [
                'm-1' => '1/感情升温的月份',
                'm-2' => '2/感情受阻的月份',
                'd-1' => '3/感情面临哪些挑战',
                'd-2' => '4/出现第三者可能性',
                'd-3' => '5/是否存在离婚风险',
                'd-4' => '6/婚姻发展建议',
            ]
        ];

        return $menu[$relation_id] ?? null;
    }

    /**
     * 获取升温月份数据
     * @param $content
     * @param $relation_id
     * @param $repeatTime
     * @param $isShowUpB
     * @param string $defaultTextKey
     * @return array|null
     * @throws \Exception
     */
    private function getRelationUp($content, $relation_id, $repeatTime, $isShowUpB, string $defaultTextKey = 'text')
    {
        //去除了A
        //B 月份简介code
        $summaryCode = [];
        foreach ($content['B'] as $item)
        {
            $summaryCode[] = $item;
        }

        //月份code
        $monthInfo = [];
        $date = [];
        // 时间词条数据
        foreach ($content['C'] as $k => $v)
        {
            if (!in_array($v['date'], $repeatTime, false) || $isShowUpB === true)
            {
                if ($v['date'] === '')
                {
                    $monthInfo[$v['code']][] = [];
                } else
                {
                    $timeDate = explode('-', $v['date']);
                    $monthInfo[$v['code']][$timeDate[0] . '年'][] = (int)$timeDate[1] . '月';
                    $date[$timeDate[0] . '年'][] = (int)$timeDate[1] . '月';
                }
            } elseif (!$v['date'])
            {
                $monthInfo[$v['code']][] = [];
            }
        }

        //过滤非以上情况的数据
        switch ($relation_id)
        {
            case 1:
                $codeB3 = 10000102;
                $codeC3 = 10000202;
                break;
            case 2:
                $codeB3 = 11000102;
                $codeC3 = 11000202;
                break;
            case 4:
                $codeB3 = 13000102;
                $codeC3 = 13000202;
                break;
        }
        $code2 = array_keys($monthInfo);
        //当逻辑B 是③非以上情况，且逻辑 C 出现①②其中的条件时，则该主题调用逻辑 B 对应的条件，不输出逻辑 C出现的①②内词条
        if ($summaryCode[0] === $codeB3 && !in_array($codeC3, $code2, false))
        {
            $monthInfo = [];
        } //当逻辑B 和逻辑 C 同时出现满足③非以上情况，则仅调用逻辑C 对应的③词条
        elseif (in_array($codeC3, $code2, false) && $summaryCode[0] === $codeB3)
        {
            $summaryCode = [];
        }

        $dateList = '';
        foreach ($date as $key => $item)
        {
            $month = implode('、', $item);
            if ($dateList)
            {
                $dateList .= '、' . $key . $month;
            } else
            {
                $dateList .= $key . $month;
            }
        }
        $date = $date ? $this->getRelationText($relation_id)[0] . $dateList : '';//获取升温固定语


        //统一词条code，一次性获取所有词条
        $monthInfoCode = array_keys($monthInfo);
        $code = array_merge($summaryCode, $monthInfoCode);
        $text = (new ZlSynastryReportText())->batchGetInfoByIds($code);


        //月份词条
        foreach ($monthInfo as $key => $item)
        {
            $newDate = '';
            $textKey = 'text';
            foreach ($item as $year => $value)
            {
                if ($year)
                {
                    $month = implode('、', $value);
                    if ($newDate)
                    {
                        $newDate .= '和' . $year . $month;
                    } else
                    {
                        $newDate = $year . $month;
                    }
                    $textKey = mb_substr($year, 0, 4) % 2 === 1 ? 'text' : 'text2';
                }
            }
            $monthInfo[$key] = [
                'date' => $newDate,
                'code' => $text[$key][$textKey] ?? $key//'暂无词条'
            ];
        }

        //月份简介词条
        $summary = '';
        foreach ($summaryCode as $item)
        {
            $summary .= $text[$item][$defaultTextKey] ?? $item;//'暂无词条';
        }
//         array_unshift($monthInfo, [
//             'date' => '',
//             'code' =>  $summary
//         ]);
        if ($date !== '')
        {
            $date .= '，' . $summary;
        } else
        {
            $date .= $summary;
        }

        $data = [
            1 => [
                'title_img' => 'https://oss.goddessxzns.com/web/static/synastry_report/relation_up-1.png',
                'intro' => $this->getRelationText($relation_id)[2],//月份top固定语
                'month_intro' => $date,
                'month_info' => $monthInfo,//月份数据
                'summary' => $this->getRelationText($relation_id)[3]//tips
            ],
            2 => [
                'title_img' => 'https://oss.goddessxzns.com/web/static/synastry_report/relation_up-2.png',
                'intro' => $this->getRelationText($relation_id)[2],//月份top固定语
                'month_intro' => $date,
                'month_info' => $monthInfo,//月份数据
                'summary' => $this->getRelationText($relation_id)[3]//tips
            ],
            4 => [
                'title_img' => 'https://oss.goddessxzns.com/web/static/synastry_report/relation_up-2.png',
                'intro' => $this->getRelationText($relation_id)[2],//月份top固定语
                'month_intro' => $date,
                'month_info' => $monthInfo,//月份数据
                'summary' => $this->getRelationText($relation_id)[3]//tips
            ]
        ];
        return $data[$relation_id] ?? null;
    }

    /**
     * 获取受阻月份数据
     * @param $content
     * @param $relation_id
     * @param $repeatTime
     * @param string $defaultTextKey
     * @return array|null
     * @throws \Exception
     */
    private function getRelationDown($content, $relation_id, $repeatTime, string $defaultTextKey = 'text')
    {
        $introCode = [];
        foreach ($content['A'] as $item)
        {
            $introCode[] = $item;
        }
        $summaryInfo = [];
        $summaryCode = [];
        foreach ($content['C'] as $item)
        {
            if (isset($item['date_list']))
            {
                foreach ($item['date_list'] as $value)
                {
                    $timeDate = explode('-', $value);
                    $summaryInfo[$item['code']][$timeDate[0] . '年'][] = (int)$timeDate[1] . '月';
                }
            }
            $summaryCode[] = $item['code'];
        }

        //月份code
        $monthInfo = [];
        $date = [];
        // 时间词条数据
        foreach ($content['B'] as $k => $v)
        {
            if (!in_array($v['date'], $repeatTime, false))
            {
                if ($v['date'] === '')
                {
                    $monthInfo[$v['code']][] = [];
                } else
                {
                    $timeDate = explode('-', $v['date']);
                    $monthInfo[$v['code']][$timeDate[0] . '年'][] = (int)$timeDate[1] . '月';
                    $date[$timeDate[0] . '年'][] = (int)$timeDate[1] . '月';
                }

            } elseif (!$v['date'])
            {
                $monthInfo[$v['code']][] = [];
            }
        }

        //过滤非以上情况的数据
        switch ($relation_id)
        {
            case 1:
                $codeA3 = 10010002;
                $codeB3 = 10010102;
                break;
            case 2:
                $codeA3 = 11010002;
                $codeB3 = 11010202;
                break;
            case 4:
                $codeA3 = 13010002;
                $codeB3 = 13010202;
                break;
        }

        $isShowDownCav = true;//是否显示阻碍曲线图和tips
        $isShowUpB = false;//是否显示主题1的B
        $code2 = array_keys($monthInfo);
        //当逻辑A 是③非以上情况，且逻辑 B 出现①②其中的条件时，则该主题调用逻辑 A 对应的条件，不输出逻辑 B出现的①②内词条
        //需要去掉原固定语连接词、主题固定语、tips、曲线图
        //这情况的固定语调整为： 庆幸的是+逻辑 B 的③非以上情况
        if ($introCode[0] === $codeA3 && !in_array($codeB3, $code2, false))
        {
            $monthInfo = [];
            $date = [];
            $isShowDownCav = false;
        }//当逻辑 A 和逻辑B同时出现满足③非以上情况，则仅调用逻辑B 对应的③词条
        elseif (in_array($codeB3, $code2, false) && $introCode[0] === $codeA3)
        {
            $monthInfo = [];
            $date = [];
            $introCode = [];
            $isShowDownCav = false;
        }
        //当逻辑 B 的③非以上情况 和逻辑C 同时出现时，则在主题 2 中不输出逻辑 C 的词条，且主题 1中需要显示输出（B逻辑和主题2 B重复的）对应词条
        if ((in_array($codeB3, $code2, false) || $isShowDownCav === false) && $content['C'])
        {
            $summaryCode = [];
            $summaryInfo = [];
            $isShowUpB = true;
        }
        // 当逻辑 B 是③非以上情况，且逻辑 A 出现①②其中的条件时，则该主题调用逻辑B对应的条件，不输出逻辑 A出现的①②内词条。需要去掉原固定语连接词、主题固定语、tips、曲线图
        if (in_array($codeB3, $code2, false) && !empty($introCode) && $introCode[0] !== $codeA3)
        {
            $isShowDownCav = false;
        }

        $dateList = '';
        foreach ($date as $key => $item)
        {
            $month = implode('、', $item);
            if ($dateList)
            {
                $dateList .= '、' . $key . $month;
            } else
            {
                $dateList .= $key . $month;
            }
        }
        $date = $date ? $this->getRelationDownText($relation_id)[0] . $dateList : '';//获取固定语

        //统一词条code，一次性获取所有词条
        $monthInfoCode = array_keys($monthInfo);
        $code = array_merge($introCode, $summaryCode, $monthInfoCode);
        $text = (new ZlSynastryReportText())->batchGetInfoByIds($code);

        //月份数据词条
        foreach ($monthInfo as $key => $item)
        {
            $newDate = '';
            $textKey = 'text';
            foreach ($item as $year => $value)
            {
                if ($year)
                {
                    $month = implode('、', $value);
                    if ($newDate)
                    {
                        $newDate .= '和' . $year . $month;
                    } else
                    {
                        $newDate = $year . $month;
                    }

                    $textKey = mb_substr($year, 0, 4) % 2 === 1 ? 'text' : 'text2';
                }
            }

            $monthInfo[$key] = [
                'date' => $newDate,
                'code' => $text[$key][$textKey] ?? $key//'暂无词条'
                // 'code' => $key//'暂无词条'
            ];
        }

        foreach ($summaryInfo as $key => $item)
        {
            $newDate = '';
            $textKey = 'text';
            foreach ($item as $year => $value)
            {
                $textKey = mb_substr($year, 0, 4) % 2 === 1 ? 'text' : 'text2';
                $month = implode('、', $value);
                if ($newDate)
                {
                    $newDate .= '和' . $year . $month;
                } else
                {
                    $newDate = $year . $month;
                }
            }
            $monthInfo[] = [
                'date' => '',
                'code' => "<b>需要注意在{$newDate}</b>，" . $text[$key][$textKey] ?? $key
            ];
        }

        $intro = '';
        foreach ($introCode as $item)
        {
            $intro .= $text[$item][$defaultTextKey] ?? $item;//'暂无词条';
            // $intro .= $item;//'暂无词条';
        }

        if ($date !== '')
        {
            $date .= '，' . $intro;
        }
        $intro = $isShowDownCav ? $this->getRelationDownText($relation_id)[2] : (new ZlSynastryReportText())->getInfoById($codeB3)[$defaultTextKey];
        $data = [
            1 => [
                'title_img' => 'https://oss.goddessxzns.com/web/static/synastry_report/relation_down-1.png',
                'intro' => $intro,//月份top固定语
                'month_intro' => $date,
                'month_info' => $monthInfo,//月份数据
                'summary' => $this->getRelationDownText($relation_id)[3],//tips
                'isShowCav' => $isShowDownCav,
                'isShowUpB' => $isShowUpB
            ],
            2 => [
                'title_img' => 'https://oss.goddessxzns.com/web/static/synastry_report/relation_down-2.png',
                'intro' => $intro,//月份top固定语
                'month_intro' => $date,
                'month_info' => $monthInfo,//月份数据
                'summary' => $intro,//tips
                'isShowCav' => $isShowDownCav,
                'isShowUpB' => $isShowUpB
            ],
            4 => [
                'title_img' => 'https://oss.goddessxzns.com/web/static/synastry_report/relation_down-2.png',
                'intro' => $intro,//月份top固定语
                'month_intro' => $date,
                'month_info' => $monthInfo,//月份数据
                'summary' => $this->getRelationDownText($relation_id)[3],//tips
                'isShowCav' => $isShowDownCav,
                'isShowUpB' => $isShowUpB
            ]
        ];
        return $data[$relation_id] ?? null;
    }

    /**
     * 获取关系升温固定词条
     * @param $relation_id
     * @return string[]|null
     */
    private function getRelationText($relation_id)
    {
        $menu = [
            1 => [
                '在接下来一年，比较有利于关系进展的月份是：',
                '<b>总的来说，你们关系在接下来一年</b>',
                '<b>在两个人的关系发展过程中，经常会因为一些甜蜜的时刻，让你们的感情急剧升温，建议你参考以下星图分析的结果，好好把握这段时机，让你们的感情促成质的飞跃。</b>',//月份top固定语
                '以上是这一年中，你们感情运势较好的月份。如果你希望感情有进一步的发展，建议你在相应的月份多花一点时间去争取，努力过的人生，才会无悔。'//tips
            ],
            2 => [
                '在接下来一年，比较有利于关系进展的月份是：',
                '<b>总的来说，你们感情在接下来一年</b>',
                '<b>在你们的恋爱发展过程中，通常会因为某些特定时刻的相处，而增强两人亲密度，好好把握有利时机多做努力，会让你们的恋情更加甜蜜。</b>',//月份top固定语
                '当你们的恋情经过一年时间的经营之后，也许你们会制造出很多相爱的美好的回忆，这也是因为你真的喜欢对方，也足够珍惜这段缘份，才会耗费如此心力去努力维系，毕竟努力的爱过才会让人体验到爱情的不易和美好。'//tips
            ],
            4 => [
                '在接下来一年，比较有利于关系进展的月份是：',
                '<b>总的来说，你们的婚姻感情在接下来这一年</b>',
                '<b>在两个人的婚姻中，经常会因为对方一些小的举动，让你倍感欣慰，觉得当初没有选错人，建议你参考以下星图分析的结果，好好把握这段时机，让你们的婚姻更加甜蜜。</b>',//月份top固定语
                '无论这一年中有多少契机去增进婚姻中的感情，站在经营婚姻的角度来说都是难能可贵的时刻。虽然你们已经走进婚姻了，但并不意味着你们之间的感情就不再需要浪漫和美好的点缀，反而正因为是婚姻，所以花多一些时间和精力去和伴侣相处，这本质就是对婚姻珍惜、对关系尊重的良好态度，毕竟努力过的感情才会让人体验到婚姻的不易和美好。',//tips
            ]
        ];

        return $menu[$relation_id] ?? null;
    }

    /**
     * 获取关系阻碍固定词条
     * @param $relation_id
     * @return string[]|null
     */
    private function getRelationDownText($relation_id)
    {
        $menu = [
            1 => [
                '在接下来一年，不利于关系进展的月份是：',
                '<b>总的来说，你们关系在接下来一年</b>',
                '<b>不可否认，两个人发展的过程中也会受到很多阻碍，来源于外人，也可能来源于自身，总之就是感觉不太对。建议你可以参考以下星图分析的结果，在对应的时间去克制和避让，尽可能地为你们的关系减轻阻碍。</b>',//月份top固定语
                '总体来说，虽然你们的关系也会经历“冷冻期”，但这就是人和人相处的必经之路，如果能在这段期间蛰伏反思、修炼自己，也能够及时调整自己的状态，何乐而不为呢？'//tips
            ],
            2 => [
                '在接下来一年，不利于关系进展的月份是：',
                '<b>总的来说，你们感情在接下来一年</b>',
                '<b>在你们的恋爱发展过程中，也会存在一些不那么顺利的时刻。在这些不顺利的时期，相处是容易遇到困难和阻碍的，甚至会破坏两个人的感情发展。如果能针对这些不利时机，去做一些力所能及的避让和克制，你们的感情才会不断地得到巩固。</b>',//月份top固定语
                '虽然在你们的感情发展中，会存在这些不利的时刻，但是两个人的相处就是需要不断地磨合，才能找到适合你们的相处模式，让你们的恋情更加健康地发展。'//tips
            ],
            4 => [
                '在接下来一年，不利于关系进展的月份是：',
                '<b>总的来说，你们的婚姻感情在接下来这一年</b>',
                '<b>在婚姻的经营过程中，会存在某些不那么顺利的时刻，在这些时期，你们之间的感情容易经受考验，建议你参考以下的星图分析结果。如果能在这些不利时机去避让和克制，则会减少你们在婚姻中出现的危机。</b>',//月份top固定语
                '在每个人的婚姻中都会存在一些不顺利的时刻，但婚姻是靠双方共同经营的，无论这种经历是好是坏，在碰撞之后都需要学会尊重和理解，才能促进一段婚姻更加健康地发展。',//tips
            ]
        ];

        return $menu[$relation_id] ?? null;
    }

    /**
     * 获取固定词库
     * @param $content
     * @param $relation_id
     * @param string $defaultTextKey
     * @return \string[][]|null
     * @throws ApiException
     */
    private function getText($content, $relation_id, string $defaultTextKey = 'text')
    {
        switch ($relation_id)
        {
            case 1:
                return $this->getText1($content, $defaultTextKey);
            case 2:
                return $this->getText2($content, $defaultTextKey);
            case 3:
                return $this->getText3($content, $defaultTextKey);
            case 4:
                return $this->getText4($content, $defaultTextKey);
            default:
                throw new ApiException('该合盘报告关系暂未出炉，敬请期待！', 200, 0);
        }
    }

    /**
     * 获取暗恋词条
     * @param $content
     * @return \string[][]|null
     * @throws \Exception
     */
    private function getText1($content, string $defaultTextKey = 'text')
    {
        $code2 = [];
        $code3 = [];
        $code4 = [];
        $code4_a = [];
        $code5 = [];
        foreach ($content[2]['text'] as $item)
        {
            $code2[] = $item;
        }
        foreach ($content[3]['text'] as $item)
        {
            $code3[] = $item;
        }
        foreach ($content[5]['text'] as $item)
        {
            $code5[] = $item;
        }

        //词条增加时间显示
        $monthInfo = [];
        foreach ($content[4]['text']['B'] as $k => $v)
        {
            if ($v['date'])
            {
                $timeDate = explode('-', $v['date']);
                $monthInfo[$v['code']][$timeDate[0] . '年'][] = (int)$timeDate[1] . '月';
            } else
            {
                $monthInfo[$v['code']] = '';
            }
            $code4[] = $v['code'];
        }
        foreach ($content[4]['text']['A'] as $item)
        {
            $code4[] = $code4_a[] = $item;
        }

        //统一词条code，一次性获取所有词条信息
        $code = array_merge($code2, $code3, $code4, $code5);
        $text = (new ZlSynastryReportText())->batchGetInfoByIds($code);

        //可能会遇到的阻碍
        $text2 = '';
        foreach ($code2 as $key => $item)
        {
            $tempText = $text[$item][$defaultTextKey] ?? $item; //'暂无词条';
            if ($text2)
            {
                $text2 .= '<br><br><b>同时</b>' . $tempText;
            } else
            {
                $text2 .= '<br><br><b>任何关系的发展都会不可避免地面临一些挑战，如果能在建立关系之前，了解其中可能存在的隐患和阻碍，可以让你做好心理准备，带着更好的心态和解决方法去面对这些问题。<br><br>在接下来一年，</b>' . $tempText;
            }

        }

        //未来一年关系概述
        $text3 = '';
        foreach ($code3 as $key => $item)
        {
            $tempText = $text[$item][$defaultTextKey] ?? $item;//'暂无词条';
            if ($text3)
            {
                $text3 .= '<br><br><b>同时</b>' . $tempText;
            } else
            {
                $text3 .= '<br><br><b>针对你们双方的星图，我们给出在未来一年里，你们关系发展的概括，其中罗列的领域，建议你重点关注。<br><br>在接下来一年，</b>' . $tempText;
            }
        }

        //对方遇新桃花机会
        $text4_a = '';
        foreach ($code4_a as $value)
        {
            $tempText = $text[$value][$defaultTextKey] ?? $value;//'暂无词条';
            if ($text4_a)
            {
                $text4_a .= '<br><br><b>同时</b>' . $tempText;
            } else
            {
                $text4_a .= '<br><br><b>在感情没能捅破窗户纸之前，你不仅会关注对方的动态，也会关注对方周围有可能和他/她暧昧的人，我们针对对方的星图数据，做出以下分析，希望可以给到你参考。<br><br>在接下来一年，</b>' . $tempText;
            }
        }

        $text4_b = '';
        foreach ($monthInfo as $key => $item)
        {
            $newDate = '';
            foreach ($item as $year => $value)
            {
                $month = implode('、', $value);
                if ($newDate)
                {
                    $newDate .= '和' . $year . $month;
                } else
                {
                    $newDate = $year . $month;
                }
            }
            $tempText = $text[$key][$defaultTextKey] ?? $key;//'暂无词条';
            if ($text4_b)
            {
                $text4_b .= "<br><br><b>在{$newDate}，</b>" . $tempText;
            } else
            {
                $text4_b .= "<b>具体来看，在{$newDate}，</b>" . $tempText;
            }
        }
        $text4 = $text4_a . '<br><br>' . $text4_b;

        //旺桃花人缘的建议
        $text5 = '';
        foreach ($code5 as $key => $item)
        {
            $tempText = $text[$item][$defaultTextKey] ?? $item;//'暂无词条';
            if ($text5)
            {
                $text5 .= '<br><br><b>同时</b>' . $tempText;
            } else
            {
                $text5 .= '<br><br><b>其实，我们每个人都有自己擅长和不擅长的领域，想要建立一段良好的感情关系，需要做到内外兼修。我们针对你的星图数据进行了分析，给出以下建议，帮你更好地去提升自我，增强桃花。<br><br>在接下来一年，如果想要增强你的桃花人缘，</b>' . $tempText;
            }
        }

        return [
            0 => [
                'img' => 'https://oss.goddessxzns.com/web/static/synastry_report/pic-1-1.png?v=1',
                'text' => $text2
            ],
            1 => [
                'img' => 'https://oss.goddessxzns.com/web/static/synastry_report/pic-1-2.png?v=1',
                'text' => $text4
            ],
            2 => [
                'img' => 'https://oss.goddessxzns.com/web/static/synastry_report/pic-1-3.png?v=1',
                'text' => $text3,
            ],
            3 => [
                'img' => 'https://oss.goddessxzns.com/web/static/synastry_report/pic-1-4.png?v=1',
                'text' => $text5
            ]
        ];
    }

    /**
     * 获取恋爱中词条
     * @param $content
     * @return \string[][]|null
     * @throws \Exception
     */
    private function getText2($content, string $defaultTextKey = 'text')
    {
        $code2 = [];
        $code3 = [];
        $code4 = [];
        $code4_a = [];
        $code4_b = [];
        $code5 = [];
        foreach ($content[2]['text'] as $item)
        {
            $code2[] = $item;
        }
        $code3Info = [];
        foreach ($content[3]['text'] as $item)
        {
            if ($item['date'])
            {
                $timeDate = explode('-', $item['date']);
                $code3Info[$item['code']][$timeDate[0] . '年'][] = (int)$timeDate[1] . '月';
            } else
            {
                $code3Info[$item['code']] = '';
            }
            $code3[] = $item['code'];
        }

        foreach ($content[5]['text'] as $item)
        {
            $code5[] = $item;
        }

        //词条增加时间显示
        foreach ($content[4]['text']['B'] as $k => $v)
        {
            $code4[] = $code4_b[] = $v;
        }
        // foreach ($content[4]['text']['A'] as $item)
        // {
        //     $code4[] = $code4_a[] = $item;
        // }

        //统一词条code，一次性获取所有词条信息
        $code = array_merge($code2, $code3, $code4, $code5);
        $text = (new ZlSynastryReportText())->batchGetInfoByIds($code);

        $text2 = '';
        foreach ($code2 as $key => $item)
        {
            $tempText = $text[$item][$defaultTextKey] ?? $item;//'暂无词条';
            if ($text2)
            {
                $text2 .= '<br><br><b>同时</b>' . $tempText;
            } else
            {
                $text2 .= '<br><br><b>任何一段恋情在发展中都不可避免地会面临一些挑战，如果我们想要维系好一段感情，就必须了解自己跟对方之间，究竟存在哪些阻碍和隐患，并提前做好准备。<br><br>在接下来一年，</b>' . $tempText;
            }

        }
        $text3 = '';
        foreach ($code3Info as $key => $item)
        {
            $newDate = '';
            if ($item)
            {
                foreach ($item as $year => $value)
                {
                    if ($key === 11030002)
                    {
                        $newDate = '';
                    } else
                    {
                        $month = implode('、', $value);
                        if ($newDate)
                        {
                            $newDate .= '和' . $year . $month;
                        } else
                        {
                            $newDate = $year . $month;
                        }
                    }
                }
            }
            $tempText = $text[$key][$defaultTextKey] ?? $key;//'暂无词条';
            if ($text3)
            {
                $text3 .= $newDate ? "<br><br><b>在{$newDate}，</b>" . $tempText : $tempText;
            } else
            {
                if ($newDate)
                {
                    $text3 .= "<br><br><b>我们都知道，一段恋情的维系需要耗费巨大精力，在这过程中，我们不可避免地会遇到对方各种桃花的干扰，提前知晓对方桃花的发展趋势，可以让你更好地掌握与对方相处的节奏。<br><br>在{$newDate}，</b>" . $tempText;
                } else
                {
                    $text3 .= "<br><br><b>我们都知道，一段恋情的维系需要耗费巨大精力，在这过程中，我们不可避免地会遇到对方各种桃花的干扰，提前知晓对方桃花的发展趋势，可以让你更好地掌握与对方相处的节奏。<br><br>在接下来一年，</b>" . $tempText;
                }
            }
        }
        // $text4_a = '';
        // foreach ($code4_a as $value)
        // {
        //     $tempText = $text[$value] ?? $value;//'暂无词条';
        //     if ($text4_a)
        //     {
        //         $text4_a .= '<br><br><b>在接下来一年内，对对方来说：</b>' . $tempText;
        //     } else
        //     {
        //         $text4_a .= '<br><br><b>当你们的恋情经过一段时间的接触和发展，自然而然地会去考虑，双方是否有步入婚姻的可能。因此，我们针对你们的星图数据进行了以下分析，以便于你了解，经过这一年的相处，你们是否有步入婚姻的机会。<br><br>在接下来一年内，对你来说：</b>' . $tempText;
        //     }
        // }

        $text4_b = '';
        foreach ($code4_b as $key => $item)
        {
            $tempText = $text[$item][$defaultTextKey] ?? $item;//'暂无词条';
            if ($text4_b)
            {
                $text4_b .= $tempText;
            } else
            {
                $text4_b .= "<b>从你们双方的运势来看，在接下来一年，</b>" . $tempText;
            }
        }
        $text4 = '<br><br><b>当你们的恋情经过一段时间的接触和发展，自然而然地会去考虑，双方是否有步入婚姻的可能。因此，我们针对你们的星图数据进行了以下分析，以便于你了解，经过这一年的相处，你们是否有步入婚姻的机会。</b><br><br>' . $text4_b;

        $text5 = '';
        foreach ($code5 as $item)
        {
            $tempText = $text[$item][$defaultTextKey] ?? $item;//'暂无词条';
            if ($text5)
            {
                $text5 .= '<br><br><b>同时</b>' . $tempText;
            } else
            {
                $text5 .= '<br><br><b>若想要恋情能够长久稳定地发展下去，一定需要双方长时间的磨合。因此，我们针对双方星图数据进行了分析，给出以下恋情发展建议，帮助你们改善关系中遇到的问题，加速恋情发展，让感情更加甜蜜。<br><br>在接下来一年，</b>' . $tempText;
            }
        }

        return [
            0 => [
                'img' => 'https://oss.goddessxzns.com/web/static/synastry_report/pic-2-1.png',
                'text' => $text2
            ],
            1 => [
                'img' => 'https://oss.goddessxzns.com/web/static/synastry_report/pic-2-2.png',
                'text' => $text3
            ],
            2 => [
                'img' => 'https://oss.goddessxzns.com/web/static/synastry_report/pic-2-3.png',
                'text' => $text4,
            ],
            3 => [
                'img' => 'https://oss.goddessxzns.com/web/static/synastry_report/pic-2-4.png',
                'text' => $text5
            ]
        ];
    }

    /**
     * 获取分后词条
     * @param $content
     * @return \string[][]|null
     * @throws \Exception
     */
    private function getText3($content, string $defaultTextKey = 'text')
    {
        $code0 = [];
        $code1 = [];
        $code2 = [];
        $code3 = [];
        $code4 = [];
        $code4_a = [];
        $code5 = [];
        foreach ($content[0]['text']['A'] as $item)
        {
            $code0[] = $item;
        }
        foreach ($content[0]['text']['B'] as $item)
        {
            $code0[] = $item;
        }
        $monthInfo1 = [];
        foreach ($content[1]['text'] as $v)
        {
            if ($v['date'])
            {
                $timeDate = explode('-', $v['date']);
                $monthInfo1[$v['code']][$timeDate[0] . '年'][] = (int)$timeDate[1] . '月';
            } else
            {
                $monthInfo1[$v['code']] = '';
            }
            $code1[] = $v['code'];
        }
        foreach ($content[2]['text'] as $item)
        {
            $code2[] = $item;
        }

        //词条增加时间显示
        foreach ($content[3]['text'] as $item)
        {
            $code3[] = $item;
        }

        //词条增加时间显示
        $monthInfo = [];
        foreach ($content[4]['text']['B'] as $k => $v)
        {
            if ($v['date'])
            {
                $timeDate = explode('-', $v['date']);
                $monthInfo[$v['code']][$timeDate[0] . '年'][] = (int)$timeDate[1] . '月';
            } else
            {
                $monthInfo[$v['code']] = '';
            }
            $code4[] = $v['code'];
        }

        foreach ($content[4]['text']['A'] as $item)
        {
            $code4[] = $code4_a[] = $item;
        }

        foreach ($content[5]['text'] as $item)
        {
            $code5[] = $item;
        }

        //统一词条code，一次性获取所有词条信息
        $code = array_merge($code0, $code1, $code2, $code3, $code4, $code5);
        $text = (new ZlSynastryReportText())->batchGetInfoByIds($code);

        $text0 = '<br><br><b>鉴于目前你们已经分手，了解彼此在接下来所处的环境和各自的状态，会让你明白现在要对这段关系做出怎样的努力。我们针对你们双方的星图数据，做出以下建议。<br><br>';
        if (($code0[1] - $code0[0]) === 10000)
        {
            $text0 .= '接下来这一年你们</b>' . str_replace('你们们', '你们', str_replace('你', '你们', $text[$code0[0]][$defaultTextKey]));
        } else
        {
            $text0 .= '接下来这一年你</b>' . $text[$code0[0]][$defaultTextKey] . '<br><br><b>接下来这一年对方</b>' . $text[$code0[1]][$defaultTextKey];
        }

        $text1 = '';
        foreach ($monthInfo1 as $key => $item)
        {
            $tempText = $text[$key][$defaultTextKey] ?? $key;//'暂无词条';
            $timeDate = '';
            if ($item)
            {
                foreach ($item as $year => $value)
                {
                    $month = implode('、', $value);
                    if ($timeDate)
                    {
                        $timeDate .= '和' . $year . $month;
                    } else
                    {
                        $timeDate = $year . $month;
                    }
                }
            }
            if ($timeDate)
            {
                $text1 .= "<br><br><b>想要进一步修复你们的关系，使得关系有所改变，你们能否恢复联络就显得尤为重要，我们针对你们的星图数据进行了以下分析，以便于你了解在未来一年，你们可能恢复联络的时间点，或许只要稍稍做一些努力，就可以再续前缘。<br><br>在{$timeDate}，</b>" . $tempText;
            } else
            {
                $text1 .= "<br><br><b>想要进一步修复你们的关系，使得关系有所改变，你们能否恢复联络就显得尤为重要，我们针对你们的星图数据进行了以下分析，以便于你了解在未来一年，你们可能恢复联络的时间点，或许只要稍稍做一些努力，就可以再续前缘。" . $tempText;
            }
        }

        $text1 .= '<br><br><b>想要再续前缘，终究不是轻易的事情。因此无论这一年，你们是否有复联的契机存在，建议你都要努力地经营好自己的人生，只有让自己变得更好，也许才能在见面的那一天，彼此都能会心一笑。</b>';

        $text2 = '';
        foreach ($code2 as $key => $item)
        {
            $tempText = $text[$item][$defaultTextKey] ?? $item;//'暂无词条';
            if ($text2)
            {
                $text2 .= '<br><br><b>同时</b>' . $tempText;
            } else
            {
                $text2 .= '<br><br><b>对于分手这件事情，相信你很难完全放下，甚至还期盼着对方能回心转意。我们针对对方的星图数据进行了以下分析，以便于你更好地了解对方的心理，去做合适的事情。<br><br>在接下来一年，</b>' . $tempText;
            }
        }


        $text2 .= '<br><br><b>无论对方心里是否还有你，是否还惦记着这段感情，我们都要学会往前看。但如果你实在放不下对方，也请你遵循自己的内心想法，即便是万分之一的机会，为的也只是不负爱过，在后面的主题中，我们也会给出相应的建议。</b>';

        $text3 = '';
        foreach ($code3 as $key => $item)
        {
            $tempText = $text[$item][$defaultTextKey] ?? $item;//'暂无词条';
            if ($text3)
            {
                $text3 .= '<br><br><b>同时</b>' . $tempText;
            } else
            {
                $text3 .= '<br><br><b>任何一段恋情都会面临一些挑战，更何况这是一段已经破碎的关系。想要重建信任和关系，就势必会面临着比以往更大的阻碍和挑战。此时就需要你了解你们双方之间究竟存在哪些已经存在或潜在的隐患。我们针对你们的星图数据做出了以下分析，在接下来一年的时间里，希望你找到改善你们关系的方法。<br><br>在接下来一年，</b>' . $tempText;
            }

        }

        $text4_a = '';
        foreach ($code4_a as $value)
        {
            $tempText = $text[$value][$defaultTextKey] ?? $value;//'暂无词条';
            if ($text4_a)
            {
                $text4_a .= '<br><br><b>同时，</b>' . $tempText;
            } else
            {
                $text4_a .= '<br><br><b>在两人关系的修复过程中，不可避免地会遇到对方各种桃花的干扰，我们针对对方的星图数据，做出以下分析，便于你参考对方桃花的发展趋势，更好地掌握与对方相处的时机。<br><br>在接下来的一年，</b>' . $tempText;
            }
        }

        $text4_b = '';
        foreach ($monthInfo as $key => $item)
        {
            $tempText = $text[$key][$defaultTextKey] ?? $key;//'暂无词条';
            $timeDate = '';
            foreach ($item as $year => $value)
            {
                $month = implode('、', $value);
                if ($timeDate)
                {
                    $timeDate .= '和' . $year . $month;
                } else
                {
                    $timeDate = $year . $month;
                }
            }
            if ($text4_b)
            {
                $text4_b .= "<br><br><b>在{$timeDate}，</b>" . $tempText;
            } else
            {
                $text4_b .= "<b>具体来看，在{$timeDate}，</b>" . $tempText;
            }
        }
        $text4 = $text4_a . '<br><br>' . $text4_b;

        $text5 = '';
        foreach ($code5 as $item)
        {
            $tempText = $text[$item][$defaultTextKey] ?? $item;//'暂无词条';
            if ($text5)
            {
                $text5 .= '<br><br><b>同时</b>' . $tempText;
            } else
            {
                $text5 .= '<br><br><b>想要修复一段曾经破裂的感情关系，并非是一件容易的事情，那些曾经存在的问题并不会随着关系的重建而消失，因此，我们针对你们的星图数据进行了分析，给出以下需要你重点关注的建议，希望可以更好地帮助你改善或修复感情关系。</b><br><br>' . $tempText;
            }
        }

        return [
            0 => [
                'img' => 'https://oss.goddessxzns.com/web/static/synastry_report/pic-3-1.png',
                'text' => $text0
            ],
            1 => [
                'img' => 'https://oss.goddessxzns.com/web/static/synastry_report/pic-3-2.png',
                'text' => $text1
            ],
            2 => [
                'img' => 'https://oss.goddessxzns.com/web/static/synastry_report/pic-3-3.png',
                'text' => $text2,
            ],
            3 => [
                'img' => 'https://oss.goddessxzns.com/web/static/synastry_report/pic-3-4.png',
                'text' => $text3
            ],
            4 => [
                'img' => 'https://oss.goddessxzns.com/web/static/synastry_report/pic-3-5.png',
                'text' => $text4
            ],
            5 => [
                'img' => 'https://oss.goddessxzns.com/web/static/synastry_report/pic-3-6.png',
                'text' => $text5
            ]
        ];
    }

    /**
     * 获取婚姻词条
     * @param $content
     * @param string $defaultTextKey
     * @return \string[][]|null
     * @throws \Exception
     */
    private function getText4($content, string $defaultTextKey = 'text')
    {
        $code2 = [];
        $code3 = [];
        $code3_a = [];
        $code3_b = [];
        $code3_c = [];
        $code4 = [];
        $code4_a = [];
        $code4_b = [];
        $code4_c = [];
        $code5 = [];
        foreach ($content[2]['text'] as $item)
        {
            $code2[] = $item;
        }

        //词条增加时间显示
        foreach ($content[3]['text']['C'] as $k => $v)
        {
            $code3[] = $code3_c[] = $v;
        }
        // foreach ($content[3]['text']['B'] as $k => $v)
        // {
        //     $code3[] = $code3_b[] = $v;
        // }
        foreach ($content[3]['text']['A'] as $item)
        {
            $code3[] = $code3_a[] = $item;
        }

        //词条增加时间显示
        foreach ($content[4]['text']['C'] as $k => $v)
        {
            $code4[] = $code4_c[] = $v;
        }
        // foreach ($content[4]['text']['B'] as $k => $v)
        // {
        //     $code4[] = $code4_b[] = $v;
        // }
        foreach ($content[4]['text']['A'] as $item)
        {
            $code4[] = $code4_a[] = $item;
        }

        foreach ($content[5]['text'] as $item)
        {
            $code5[] = $item;
        }

        //统一词条code，一次性获取所有词条信息
        $code = array_merge($code2, $code3, $code4, $code5);
        $text = (new ZlSynastryReportText())->batchGetInfoByIds($code);

        $text2 = '';
        foreach ($code2 as $key => $item)
        {
            $tempText = $text[$item][$defaultTextKey] ?? $item;//'暂无词条';
            if ($text2)
            {
                $text2 .= '<br><br><b>同时</b>' . $tempText;
            } else
            {
                $text2 .= '<br><br><b>任何一段婚姻在发展中都不可避免地会面临一些挑战，如果你想要维系好婚姻关系，就必须了解自己跟对方之间究竟存在哪些阻碍和隐患。建议你参考以下的分析内容，带着积极的心态和解决方法去面对这些问题。<br><br>在接下来一年，你们的婚姻</b>' . $tempText;
            }

        }

        // $text3a_b = '<br><br><b>婚姻的维系是需要耗费巨大精力的，在这个过程中，不可避免地会遇到各种桃花的干扰，这也是很多婚姻关系中的一个雷区。提前知晓彼此桃花情况，可以帮你更好地掌握与对方相处的节奏。（备注：此处的桃花也有可能是人缘、人际关系）<br><br>在你的本命人生中，</b>' . $text[$code3_a[0]] . '<br><br><b>从你的运势层面来看，在接下来一年你的</b>' . $text[$code3_b[0]] . '<br><br><b>在对方本命人生中，</b>' . $text[$code3_a[1]] . '<br><br><b>从对方运势层面来看，在接下来一年他的</b>' . $text[$code3_b[1]];

        if ($code3_a[0] === $code3_a[1])
        {
            $text3a_b = '<br><br><b>在你们漫长的人生中，</b>' . $text[$code3_a[0]][$defaultTextKey];
        } else
        {
            $text3a_b = '<br><br><b>在你漫长的人生中，</b>' . $text[$code3_a[0]][$defaultTextKey] . '<br><br><b>在对方漫长的人生中，</b>' . $text[$code3_a[1]][$defaultTextKey];
        }

        $text3_c = '';
        foreach ($code3_c as $key => $item)
        {
            $tempText = $text[$item][$defaultTextKey] ?? $item;//'暂无词条';
            if ($text3_c)
            {
                $text3_c .= $tempText;
            } else
            {
                $text3_c .= "<br><br><b>从你们综合的婚姻关系运势来看，在接下来一年</b>" . $tempText;
            }
        }
        $text3 = '<br><br><b>婚姻的维系是需要耗费巨大精力的，在这个过程中，不可避免地会遇到各种桃花的干扰，这也是很多婚姻关系中的一个雷区。提前知晓彼此桃花情况，可以帮你更好地掌握与对方相处的节奏。（备注：此处的桃花也有可能是人缘、人际关系）</b>' . $text3_c . $text3a_b;

        // $text4a_b = '<br><br><b>婚姻其实是一件很考验夫妻双方经营智慧的事情，单方面的付出或者一味地委曲求全是换不到一段美满幸福的婚姻的。我们针对你们双方的星图数据进行了以下分析，以便于你了解，经过未来一年的相处，你们的婚姻是否存在离异的可能性。<br><br>在你的本命人生中，</b>' . $text[$code4_a[0]] . '<br><br><b>从运势层面来看，在接下来一年，</b>' . $text[$code4_b[0]] . '<br><br><b>在对方本命人生中，</b>' . $text[$code4_a[1]] . '<br><br><b>从运势层面来看，在接下来一年，</b>' . $text[$code4_b[1]];

        if ($code4_a[0] === $code4_a[1])
        {
            $text4a_b = '<br><br><b>在你们漫长的人生中，</b>' . $text[$code4_a[0]][$defaultTextKey];
        } else
        {
            $text4a_b = '<br><br><b>在你漫长的人生中，</b>' . $text[$code4_a[0]][$defaultTextKey] . '<br><br><b>在对方漫长的人生中，</b>' . $text[$code4_a[1]][$defaultTextKey];
        }

        $text4_c = '';
        foreach ($code4_c as $key => $item)
        {
            $tempText = $text[$item][$defaultTextKey] ?? $item;//'暂无词条';
            if ($text4_c)
            {
                $text4_c .= $tempText;
            } else
            {
                $text4_c .= "<br><br><b>从你们综合的关系运势来看，</b>" . $tempText;
            }
        }

        $text4 = '<br><br><b>婚姻其实是一件很考验夫妻双方经营智慧的事情，单方面的付出或者一味地委曲求全是换不到一段美满幸福的婚姻的。我们针对你们双方的星图数据进行了以下分析，以便于你了解，经过未来一年的相处，你们的婚姻是否存在离异的可能性。</b>' . $text4_c . $text4a_b . '<br><br><b>婚姻是需要经营的，在遇到问题的时候，不仅会考验每个人的性格，也会考验每个人的毅力和决心。夫妻之间小打小闹再正常不过。婚姻是需要责任与担当的，遇到问题时你们要冷静、直面问题、解决问题。婚姻不易，且行且珍惜。</b>';

        $text5 = '';
        foreach ($code5 as $item)
        {
            $tempText = $text[$item][$defaultTextKey] ?? $item;//'暂无词条';
            if ($text5)
            {
                $text5 .= '<br><br><b>同时</b>' . $tempText;
            } else
            {
                $text5 .= '<br><br><b>如果想要一段婚姻长久稳定地发展下去，势必会经过长时间的磨合。我们针对你们的星图数据进行了分析，给出以下婚姻运势建议，希望可以帮助你增加婚姻感情中的甜蜜指数。<br><br>接下来一年，</b>' . $tempText;
            }
        }

        return [
            0 => [
                'img' => 'https://oss.goddessxzns.com/web/static/synastry_report/pic-4-1.png',
                'text' => $text2
            ],
            1 => [
                'img' => 'https://oss.goddessxzns.com/web/static/synastry_report/pic-4-2.png',
                'text' => $text3
            ],
            2 => [
                'img' => 'https://oss.goddessxzns.com/web/static/synastry_report/pic-4-3.png',
                'text' => $text4,
            ],
            3 => [
                'img' => 'https://oss.goddessxzns.com/web/static/synastry_report/pic-4-4.png',
                'text' => $text5
            ]
        ];
    }

    /**
     * 获取女神寄语
     * @param $relation_id
     * @return string
     */
    private function getGoddessMsg($relation_id)
    {
        $data = [
            1 => '以上是通过六个维度，对你们未来一年内关系的发展进行的详尽分析，相信你已经对这段关系的发展脉络有一定的了解了。<br><br>女神也提醒你，人与人之间总归是缘来缘去的，无论一段关系成与不成，有过努力的争取至少不会辜负彼此的相遇，希望你珍惜与对方相遇的每一天，尽可能地把握机缘，既然喜欢，那就努力多一点点，主动多一点点，不负遇见！',
            2 => '以上是通过六个维度，对你们未来一年内恋情的发展进行的详尽分析，相信你已经对这段感情的发展脉络有一定的了解了。<br><br>女神也提醒你，感情是需要两个人共同经营和维护的，无论一段关系遇到多少困难，都应当保持正确的恋爱观念和态度，用心付出，不负相遇。',
            3 => '通过以上各个维度的详尽分析，相信你已经对接下来一年修复这段关系的难易程度，有一定的了解了。<br><br>女神也提醒你，人与人之间总归是缘来缘去的，无论一段关系成与不成，努力争取过至少不会辜负曾经心里的那份喜欢。希望你珍惜与对方相处的每一天，创造并把握你们之间的缘份，也只有这样，才能在把这份缘留在你的人生中，既然那么不舍得放下、那么喜欢，至少让自己再努力一次！',
            4 => '以上是通过六个维度，对你们未来一年内婚姻的发展进行的详尽分析，相信你已经对这段婚姻的发展脉络有一定的了解了。<br><br>女神也提醒你，人生中我们所经历的婚姻顺利与否，都是靠努力经营得来的，从来都不是一个人的事情和责任，无论一段关系遇到多少困难，都应当保持正确的婚姻观念和态度，悉心去发展，尽可能地去珍惜这段缘份，也只有这样，才能保持婚姻的长久和幸福感。婚姻不易，且行且珍惜！'
        ];
        return $data[$relation_id] ?? '';
    }
}
